CC = gcc
AS = nasm
LD = ld

CFLAGS  = -Wall -Werror
ASFLAGS = -felf

GDB = -ggdb

BIN = oc2

PATHBIN = ../bin/

OBJS = comprimir_archivo.o descomprimir_archivo.o comprimir_buffer.o calcular_cant_codigos.o obtener_tabla_codificacion.o cargar_tabla_codigo_desde_buffer.o descomprimir_buffer.o generar_tabla_apariciones.o generar_tabla_codigos.o calcular_longitud_codificacion.o generar_codificacion.o cargar_arbol_huffman.o crear_lista_huffman.o crear_arbol_huffman.o generar_codigo.o lista_obtener_primero.o lista_insertar_ordenado.o liberar_arbol.o

OBJS2 = $(patsubst %.o, ../bin/%.o, $(OBJS))

.PHONY = all clean

all: clean main

%.o: %.asm
	$(AS) $(GDB) $(ASFLAGS) -o $(PATHBIN)$@ $<

main: $(OBJS)
	$(CC) $(GDB) $(CFLAGS) $(OBJS2) -o $(PATHBIN)$(BIN) main.c

clean:
	rm -rf ./../bin/*.o
	rm -rf ./../bin/$(BIN)
